1. Field of the Invention
The present invention is related generally to an improved data processing system and in particular to version control for source code. More particularly, the present invention is directed to a computer implemented method and computer usable program product for utilizing semantic version control to track dependencies between source code sections.
2. Description of the Related Art
Source code is a sequence of statements that is usually written in a high level programming language, such as, without limitation, C programming language, C++, or Java™. Source code is usually stored in one or more text files until the code is compiled and executed. As a program is designed and developed, frequently multiple versions of the same program are deployed at different sites for utilization by multiple program developers. In such a case, a single document or section of code is often edited by members of a team. These team members may be located in different physical locations and making updates to the source code without consultation with the other members of the team. In these situations, version control systems are frequently used to track and account for ownership of updates and changes to documents and code.
Version control is the management of multiple revisions to a source code file by multiple developers. Version control is most commonly used in engineering and software development to manage ongoing development of digital documents such as source code, art resources, blueprints, electronic models, and other critical information that may be worked on by a team of people. Tools for version control are frequently necessary for the organization of multi-developer projects.
Current version control systems for tracking changes in source code rely on tracking comments made by developers when they commit changes to their source code. These comments are attached to a change-set in files associated with the source code, such as, without limitation, comments saved to a change set in the source code repository. The change set is a file that identifies a set of changes made in a single commit. A commit occurs when a copy of the changes made to the working copy is written or merged into the source code repository. The source code repository is a repository where current and historical file data associated with the source code is stored.
Another version control system tracks changes to source code by tracking changes to filenames and line numbers. However, these current version control systems require developers to read through many sets of comments, even if the comments are unrelated to the developer's workflow. Moreover, the comments retained in the source code file are often not useful in helping developers isolate problems when refactoring or integrating existing code. Refactoring code is any change to a computer program's code which improves its readability or simplifies its structure without changing results generated by the program code at execution of the code.
Additionally, these version control systems lack any visual display of the relationships between the source code sections. Source code is often lengthy and very detailed. Comments that are saved often only indicate that a certain section has been changed, without providing a reason for the change. Over time, a developer may be unable to remember the reason why certain changes were made. Thus, the code base becomes less maintainable.